package session.stateless;

import entity.AccessRole;
import javax.ejb.Local;
import entity.Employee;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;

@Local
public interface EmployeeSessionBeanLocal {

    public Employee getEmployee(String userId);

    public ArrayList<Employee> getEmployees();

    public ArrayList<Employee> getEmployees(String department);

    public ArrayList<Employee> getEmployees(ArrayList<AccessRole> rlist);

    public void addEmployee(String userId, String userPassword, String name, Integer contactOffice, Integer contactMobile, String emailAddress, String department, String accountStatus, Date passwordExpiry, Integer invalidCounter, String designation, Date dob);

    public Integer loginEmployee(String userId, String userPassword);

    public void updateLogin(String userId, Integer counter);

    public Date updatePassword(String userId, String userPassword);

    public void updatePassword(String userId, String userPassword, Date passwordExpiry);

    public void updateEmployee(String userId, String name, Integer contactOffice, Integer contactMobile, String emailAddress, String department, String accountStatus, Date passwordExpiry, Integer invalidCounter, String designation, Date dob);

    public void deleteEmployee(String userId);

    public ArrayList<String> getRoles(String userId);

    public void updateAccessRole(String userId, String role, Boolean addRole);

    public List<String> getDesignations();

    public String getPassword(String userId);
}
